import Vue from 'vue'
import Router from 'vue-router'
// 路由组建加载
// import IndexRouter from './index/indexRouter.js'
// import HelloRouter from './hello/helloRouter.js'
import UserRouter from './user/userRouter.js'
import ChannelRouter from './channel/ChannelRouter.js'
import ADDataRouter from './ADData/ADDataRouter.js'
// 服务模块
import cookieServer from '@/components/server/cookie.js'
import toastr from '../../static/js/toastr.min'

Vue.use(Router)

// 错误模板（配合）
const error = {
  template: '<div>404</div>'
}

const router = new Router({
  mode: 'history',
  routes: [
    // 错误路径的场合返回404
    { path: '*', component: error },
    // index 模块
    // IndexRouter,
    // hello 模块
    // HelloRouter,
    // tese 模块
    // 用户（登陆注册模块）
    UserRouter,
    // 推广渠道
    ChannelRouter,
    // 广告数据后台
    ADDataRouter,

  ],
  // history 模式下才有效
  scrollBehavior (to, from, savedPosition) {
    // return 期望滚动到哪个的位置
    if (savedPosition) {
      // 返回按钮的场合，定位到离开的位置
      return savedPosition
    } else {
      return { x: 0, y: 0 }
      // 如果你要模拟『滚动到锚点』的行为：
      // selector: to.hash
    }
  }
})

// 全局路由钩子
router.beforeEach((to, from, next) => {

    // console.log('from: ', from)

    // console.log('to: ', to)

    // 不是登陆的场合，检查登录信息
    if (to.name != 'login') {
      // 目标路由有用户名（id）的场合
      if (to.params.username) {
        // Cookie信息和路由信息一致的场合 => 继续
        if (cookieServer.getCookie('ad_statistics') == to.params.username) {
          next();
        } else {
        // 没有路由信息或者路由信息于cookie信息不一致的场合返回登陆页面
        toastr.error('验证错误，请从新登陆');
        router.push({ name: 'login'})
        }
      }else if (!to.name) {
        // 没有路由信息的场合, 默认跳转登录页面
        router.push({ name: 'login'});
      } else {
        // 没有路由信息或者路由信息于cookie信息不一致的场合返回登陆页面
        toastr.error('验证错误，请从新登陆');
        router.push({ name: 'login'});
      }
    } else {
      // console.log('delCookie();');
      // 登陆的场合，删除cookie
      cookieServer.delCookie();
      next();
    }
});

router.afterEach(route => {
})

export default router
